<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 索引方法：indexOf()、lastIndexOf()
        // 循环方法：forEach(回调函数)、map(回调函数)、filter(回调函数)、every(回调函数)、some(回调函数)
        // 归并方法：reduce()、reduceRight() 缩小方法

        var arrs=["李云迪","吴亦凡","李易峰","罗志祥","王力宏"];


        // forEach(回调函数)循环遍历数组，这个方法没有返回值
        var res=arrs.forEach(function(value,index,array){
            console.log(value);//数组中的元素值
            console.log(index);//数组中的索引
            console.log(array);//当前的数组
            return value;
        });
        console.log(res);//undefined

        // map(回调函数)返回每次回调函数调用的结果组成的新数组
        var arrs2=[1,2,3,4];
        var res=arrs2.map(function(value,index,array){
            return value*3;
        });
        console.log(res);

        // filter(回调函数)对数组元素进行过滤筛选，返回该函数会返回true的项目组成的新数组
        var arrs3=[100,2,3,40];
        var res=arrs3.filter(function(value,index,array){
            return value>=20;
        });
        console.log(res);

        // every(回调函数)检测所有元素是否符合指定条件，只要有一个不符合，则返回false，如果都符合，则返回true
        var arrs4=[100,0,3,40];
        var res=arrs4.every(function(value,index,array){
            return value>=1;
        });
        console.log(res);

         // some(回调函数)检测所有元素是否符合指定条件，只要有一个符合，则返回true，如果都不符合，则返回false
        var arrs4=[100,0,-2,40];
        var res=arrs4.some(function(value,index,array){
            return value>=1;
        });
        console.log(res);

        // 归并方法：reduce(回调函数)、reduceRight(回调函数) 缩小方法会遍历数组中所有项目，然后构造成一个最终的值，一个是从前往后，另一个是从后往前
        //回调函数callback(prev,cur,index,array)
        // prev:第一次循环prev为下标为0的值，后续指的是循环上一次返回的值
        // cur:当前循环的元素值,第一次为下标为1的值
        // index:每次循环的下标
        // array:数组
        var arrs4=[1,2,3,4,5];
        var res=arrs4.reduce(function(prev,cur,index,array){
            console.log("---------")
            console.log(prev,cur);
            return prev+cur;
        });
        console.log(res);
        var res=arrs4.reduceRight(function(prev,cur,index,array){
            console.log("---------")
            console.log(prev,cur);
            return prev+cur;
        });
        console.log(res);
    </script>
</head>
<body>
    
</body>
</html>